160_01.zip Programs from "Learning to Program in C"
161_01.zip Programs from "Efficient C"
162_01.zip Mchip80
163_01.zip Small C for MS-DOS 1/2
163_02.zip Small C for MS-DOS 2/2
164_01.zip Windows for C
165_01.zip Programs from "Reliable Data Structures"
166_01.zip CUG Directory
167_01.zip Windows, Unix-like Util.
168_01.zip Simple Database
169_01.zip Miscellany IV
170_01.zip Miscellany V
171_01.zip Miscellany VI
172_01.zip LEX, Part I
173_01.zip LEX, Part II
176_01.zip XLISP 1.6 1/2
176_02.zip XLISP 1.6 2/2
177_01.zip 5 12-31-125 Dr. Shaw's DOS Shell
178_01.zip TVX Source
179_01.zip TVX Doc and Executable
181_01.zip CFORUM and LZW
182_01.zip UNIX BBS
183_01.zip PC Tool II
184_01.zip RUNAND
185_01.zip SORTS
186_01.zip MAKE and AIM
187_01.zip Functions IV
188_01.zip Utilities VI
189_01.zip PC Tools III
190_01.zip Steve Passe's 68K Assembler
191_01.zip Miscellany VII
192_01.zip Miscellany VIII
193_01.zip Crypto Toolbox
194_01.zip JUGPDS 17
195_01.zip JUGPDS 18
196_01.zip JUGPDS 19
197_01.zip Micro Emacs v 3.9, Exec. and Doc.
198_01.zip Micro Emacs v 3.9, Source 1/2
198_02.zip Micro Emacs v 3.9, Source 2/2
199_01.zip GED
200_01.zip Small C Interpreter
201_01.zip MSDOS System Support
202_01.zip KAREL for MSDOS
203_01.zip YAM for MSDOS
204_01.zip C Compiler
205_01.zip Utilities VII
206_01.zip Checkbook Register, Doc. and Exec.
207_01.zip Checkbook Register, Doc. and Source
208_01.zip 'e' for CP/M 68K
209_01.zip Simplex Curve Fitting
210_01.zip Simulation and Loadable BIOS for CP/M
211_01.zip Search, Sort and Merge
212_01.zip Simulation for BDOS
213_01.zip Van Nuys Enhancements
214_01.zip File Display Utilities
215_01.zip BBS for BDS C
216_01.zip ZMODEM & SAVERAM 1/2
216_02.zip ZMODEM & SAVERAM 2/2
217_01.zip Spell and Dictionary, Part I
218_01.zip Spell and Dictionary, Part II 1/2
218_02.zip Spell and Dictionary, Part II 2/2
219_01.zip Cross Assembler
220_01.zip Window Boss 1/3
220_02.zip Window Boss 2/3
220_03.zip Window Boss 3/3
221_01.zip C for FLEX
222_01.zip Small C v 2.7 Exec. and Doc.
223_01.zip Small C v 2.7 Source 1/2
223_02.zip Small C v 2.7 Source 2/2
224_01.zip UTILIX
225_01.zip Utilities and ZMATH
226_01.zip ART-CEE
227_01.zip Portable Graphics 1/2
227_02.zip Portable Graphics 2/2
228_01.zip Miscellany IX
229_01.zip Little Smalltalk, Part I, with bundled files
230_01.zip Little Smalltalk, Part II, with bundled files
231_01.zip Little Smalltalk, Part I, w/ unbundled files
232_01.zip Little Smalltalk, Part II, w/ unbundled files
233_01.zip Make and other Utilities
234_01.zip XDIR
235_01.zip Overview 1/2
235_02.zip Overview 2/2
236_01.zip Highly Portable Utilities
237_01.zip GRAD Graphics Doc and Lib
238_01.zip GRAD Graphics Source and Font
239_01.zip P.C. Gammon for MSC4
240_01.zip P.C. Gammon for Turbo C
241_01.zip Inference Engine and Rule Based Compiler
242_01.zip Still More Cross Assemblers
243_01.zip DECUS C Preprocessor
244_01.zip deBruijn
245_01.zip Linear Cellular Automata
246_01.zip Cycles, Mandelbrot Graphics 1/2
246_02.zip Cycles, Mandelbrot Graphics 2/2
247_01.zip MIRACL 1/3
247_02.zip MIRACL 2/3
247_03.zip MIRACL 3/3
248_01.zip MicroSpell
249_01.zip C Spot Run (CSR) Library
250_01.zip 68K FP Library & Mandelbrot Graphics
251_01.zip Pull Down Menu and Adventure System
252_01.zip C Tutor Doc
253_01.zip C Tutor Source
255_01.zip EGA Graphics Library
256_01.zip DeSmet Carry Routines 1/2
256_02.zip DeSmet Carry Routines 2/2
257_01.zip C Tutor Doc (Turbo C)
258_01.zip C Tutor Source (Turbo C)
259_01.zip Console I/O & Withers Tools
260_01.zip Zmodem, CU and tty Library
261_01.zip 68K Cross Assembler, MSDOS
262_01.zip Ramey Tools
263_01.zip C_wndw Toolkit 1/2
263_02.zip C_wndw Toolkit 2/2
264_01.zip NRO & Other PC Tools
265_01.zip cpio 1/2
265_02.zip cpio 2/2
266_01.zip microPLOX
267_01.zip 8085, 2650 & S6 Cross Assemblers
268_01.zip Unicorn Library (Turbo C) 1/2
268_02.zip Unicorn Library (Turbo C) 2/2
269_01.zip Unicorn Library (MSC 4)
270_01.zip Miscellany X
271_01.zip Steven's Library (Turbo C) 1/2
271_02.zip Steven's Library (Turbo C) 2/2
272_01.zip Steven's Library (Datalight)
273_01.zip Turbo C Utilities
274_01.zip Arrays for C
275_01.zip Linear Cellular Automata II 1/2
275_02.zip Linear Cellular Automata II 2/2
276_01.zip Z80 and 6804 Cross Assemblers
277_01.zip HP Plotter Library
278_01.zip CXL v 5.1 1/3
278_02.zip CXL v 5.1 2/3
278_03.zip CXL v 5.1 3/3
279_01.zip CROBOTS
280_01.zip Software Tools Source
281_01.zip Unicorn Library v 5.1 1/2
281_02.zip Unicorn Library v 5.1 2/2
282_01.zip Quip and Graphics
283_01.zip FAFNIR 1/3
283_02.zip FAFNIR 2/3
283_03.zip FAFNIR 3/3
284_01.zip Portable 8080 System
285_01.zip Bison for MSDOS 1/3
285_02.zip Bison for MSDOS 2/3
285_03.zip Bison for MSDOS 3/3
286_01.zip GRAD for MSC 1/2
286_02.zip GRAD for MSC 2/2
287_01.zip GRAD for Turbo C 1/3
287_02.zip GRAD for Turbo C 2/3
287_03.zip GRAD for Turbo C 3/3
288_01.zip Taveling Salesman, SD and Master Env. Access
289_01.zip Othello
290_01.zip FLEX for MSDOS 1/2
290_02.zip FLEX for MSDOS 2/2
291_01.zip JJB for QC and TC
292_01.zip ASxxxxx Cross Assemblers 1/4
292_02.zip ASxxxxx Cross Assemblers 2/4
292_03.zip ASxxxxx Cross Assemblers 3/4
292_04.zip ASxxxxx Cross Assemblers 4/4
293_01.zip 3D Medical Imaging, Source 1/2
293_02.zip 3D Medical Imaging, Source 2/2
294_01.zip 3D Medical Imaging, Sample Imaging 1/4
294_02.zip 3D Medical Imaging, Sample Imaging 2/4
294_03.zip 3D Medical Imaging, Sample Imaging 3/4
294_04.zip 3D Medical Imaging, Sample Imaging 4/4
295_01.zip blkio Library
296_01.zip C to C++ Migrator
297_01.zip Small Prolog 1/2
297_02.zip Small Prolog 2/2
298_01.zip PC Curses
299_01.zip MEL and BP
300_01.zip MAT_LIB
301_01.zip BGI Applications 1/2
301_02.zip BGI Applications 2/2
302_01.zip 3D Transforms
303_01.zip MC68K Disassembler
304_01.zip ROFF5
305_01.zip HGA Mandelbrot Explorer 1/2
305_02.zip HGA Mandelbrot Explorer 2/2
306_01.zip Thread and Synapsys
307_01.zip ADU and COMX
308_01.zip MSU, REMZ & List 1/2
308_02.zip MSU, REMZ & List 2/2
309_01.zip 6809 C Compiler for MSDOS
310_01.zip Little Smalltalk for MSDOS 1/2
310_02.zip Little Smalltalk for MSDOS 2/2
311_01.zip DB Package
312_01.zip Make-Maker
313_01.zip Stevie
314_01.zip MNP C Library
315_01.zip FTGRAPH
316_01.zip AS8 Cross Assembler
317_01.zip Group3 Image Processing
318_01.zip RED 1/2
318_02.zip RED 2/2
319_01.zip CPP 1/2
319_02.zip CPP 2/2
320_01.zip Convolution Image Process
321_01.zip Mouse Trap Library
322_01.zip Doctor's Tools
323_01.zip Fireworks and Adventure
324_01.zip WGCONIO
325_01.zip VGA Graphics Library 1/2
325_02.zip VGA Graphics Library 2/2
326_01.zip SoftC Database Library 1/3
326_02.zip SoftC Database Library 2/3
326_03.zip SoftC Database Library 3/3
327_01.zip Panels for C 1/2
327_02.zip Panels for C 2/2
328_01.zip WTWG 1/2
328_02.zip WTWG 2/2
329_01.zip Unix Tools for PC 1/2
329_02.zip Unix Tools for PC 2/2
330_01.zip CTask 1/3
330_02.zip CTask 2/3
330_03.zip CTask 3/3
331_01.zip SE Editor
332_01.zip PC Curses 1/2
332_02.zip PC Curses 2/2
333_01.zip GAWK 1/2
333_02.zip GAWK 2/2
334_01.zip GNUPLOT 1/3
334_02.zip GNUPLOT 2/3
334_03.zip GNUPLOT 3/3
335_01.zip Frankenstein Cross Assembler 1/4
335_02.zip Frankenstein Cross Assembler 2/4
335_03.zip Frankenstein Cross Assembler 3/4
335_04.zip Frankenstein Cross Assembler 4/4
336_01.zip EGAPAL/EDIPAL
337_01.zip Designing Screen Interfaces in C
338_01.zip C Compiler and Assembler 1/2
338_02.zip C Compiler and Assembler 2/2
339_01.zip CTRLCLIB 1/2
339_02.zip CTRLCLIB 2/2
340_01.zip C-Window
341_01.zip Orbit Propagation
342_01.zip I8255 Interface Library
343_01.zip C Image Processing System 1/3
343_02.zip C Image Processing System 2/3
343_03.zip C Image Processing System 3/3
344_01.zip C Grab-Bag #1 1/2
344_02.zip C Grab-Bag #1 2/2
345_01.zip TLC/TLP
346_01.zip ASxxxx Cross Assembler, Part 2 1/2
346_02.zip ASxxxx Cross Assembler, Part 2 2/2
347_01.zip TAVL Tree
348_01.zip 8048 Disassembler/Z80 Asm
349_01.zip Simulation Subroutine Set
350_01.zip PCX Graphics Library
351_01.zip UltraWin 1/2
351_02.zip UltraWin 2/2
352_01.zip String and Vlist
353_01.zip Withdrawn from the CUG Library 1/2
353_02.zip Withdrawn from the CUG Library 2/2
354_01.zip CES Mouse Tools Library
355_01.zip Sherlock for MSDOS 1/3
355_02.zip Sherlock for MSDOS 2/3
355_03.zip Sherlock for MSDOS 3/3
357_01.zip CSTAR 1/2
357_02.zip CSTAR 2/2
358_01.zip cbase
359_01.zip GNU C/C++ for 386 1/12^M
359_02.zip GNU C/C++ for 386 2/12^M
359_03.zip GNU C/C++ for 386 3/12^M
359_04.zip GNU C/C++ for 386 4/12^M
359_05.zip GNU C/C++ for 386 5/12^M
359_06.zip GNU C/C++ for 386 6/12^M
359_07.zip GNU C/C++ for 386 7/12^M
359_08.zip GNU C/C++ for 386 8/12^M
359_09.zip GNU C/C++ for 386 9/12^M
359_10.zip GNU C/C++ for 386 10/12^M
359_11.zip GNU C/C++ for 386 11/12^M
359_12.zip GNU C/C++ for 386 12/12^M
360_01.zip uspell 1/2
360_02.zip uspell 2/2
361_01.zip Gadgets and Term 1/2
361_02.zip Gadgets and Term 2/2
362_01.zip RMAXTask
363_01.zip Cross Assembler 1/2
363_02.zip Cross Assembler 2/2
364_01.zip C-Across 1/2
364_02.zip C-Across 2/2
365_01.zip Elvis 1/3
365_02.zip Elvis 2/3
365_03.zip Elvis 3/3
366_01.zip MicroEmacs 1/3
366_02.zip MicroEmacs 2/3
366_03.zip MicroEmacs 3/3
367_01.zip GNU File and Text Utilities 1/2
367_02.zip GNU File and Text Utilities 2/2
368_01.zip GNUlib for MS-DOS
369_01.zip Genitor
370_01.zip GATool
371_01.zip WindosIO V2.0 1/2
371_02.zip WindosIO V2.0 2/2
372_01.zip Mouse++, String++ and Z++ Classes
373_01.zip MicroEMACS for Windows 1/2
373_02.zip MicroEMACS for Windows 2/2
374_01.zip MicroSpell V2.0
375_01.zip TextView
376_01.zip OS/2 Tools 1/4
376_02.zip OS/2 Tools 2/4
376_03.zip OS/2 Tools 3/4
376_04.zip OS/2 Tools 4/4
377_01.zip DSR Functions
378_01.zip NEWMAT
379_01.zip ZOO
380_01.zip JMODEM
381_01.zip JPEG
382_01.zip GZIP
383_01.zip VGL 1/2
383_02.zip VGL 2/2
384_01.zip Ghostscript 1/13
384_02.zip Ghostscript 2/13
384_03.zip Ghostscript 3/13
384_04.zip Ghostscript 4/13
384_05.zip Ghostscript 5/13
384_06.zip Ghostscript 6/13
384_07.zip Ghostscript 7/13
384_08.zip Ghostscript 8/13
384_09.zip Ghostscript 9/13
384_10.zip Ghostscript 10/13
384_11.zip Ghostscript 11/13
384_12.zip Ghostscript 12/13
384_13.zip Ghostscript 13/13
385_01.zip BCC+ Coroutine
386_01.zip Thomson-Davis Editor
387_01.zip C/C++ Lost Algorithms
388_01.zip Anthony's Tools
389_01.zip VGA Fontlib, NakeFont
390_01.zip Another C Tools Lib
391_01.zip C Exploration Tools
392_01.zip GNU Indent
393_01.zip LL, GIFSave, Cordict
394_01.zip C_SIM++
395_01.zip CUG Input-Edit,Typing Tutor
396_01.zip NNUTILS
397_01.zip IOCCC
398_01.zip ASXXXX
399_01.zip MINED
400_01.zip Socket++
400_02.zip Socket++, by Gnanasekaran Swaminathan (Centreville, VA), is an iostream-like class for Unix and inet sockets, pipes, and socketpairs. Socket++ classes can be used more effectively than directly calling the underlying low-level system functions. Since Socket++ has the same interface as the LibG++ iostream (i.e. like cout and cin), it automatically performs type-safe input and output. Even though Socket++ is very easy to use, it still supports a full complement of socket options including: error reporting, debug mode, keepalives, routing, broadcast datagrams, out-of-band data, and buffer resizing. Socket++ includes a mechanism for handling timeouts gracefully as well. Socket++ runs on many Unix platforms including Sun Sparc, IBM RS/6000, DECstation, and SGI Indigo boxes. Socket++ version 1.4, released on Jun-93
401_01.zip SGPC or "Simple Genetic Programming in C", by Walter Alden Tackett and Aviram Carmi, supports the "Adaptive Automatic Program Induction" method defined by Koza and Rice (Stanford University). The Koza and Rice method generates LISP programs designed to solve problems specified by the user. Tackett and Carmi have produced SGPC by porting the underlying algorithm for program creation from LISP to C. Thus, SGPC is a C program that generates LISP genetic programs as its output. Since SGPC is now available in C, it offers greater portability and a 25 to 50 times speed improvement, according to Tackett and Carmi. One notable improvement over the original is the ability to handle multiple populations. SGPC has been successfully built on many Unix workstations including Sun Sparcs, DECstations, HP-UX, and SGI Indigo. SGPC version 1.0 is now available as volume #401 in the CUG Library.
401_02.zip SGPC: Simple Genetic Programming in C 2/2
402_01.zip CForms, by Lars Berntzon (Stockholm, Sweden), is a tool for building interactive forms-driven applications. CForms applications can run on nany type of library supported by the "curses" library. CForms uses a language-based design to define forms. An application may contain C source modules, field pictures, field definitions, literals, and events. CForms applications must be compiled with the CFC compiler and linked with the CFL linker. CForms runs on most Unix SYSV compatible platforms including SunOS, Dell-SVR4, and Diab SYSV.3. It requires a curses library and yacc or GNU Bison. CForms version 2.1 is now available as volume #402 in the CUG Library.
403_01.zip Patrick KO Shu Pui (Tai Po, Hong Kong) contributes the Small Matrix Toolbox for C Programmers. The toolbox is a set of C functions for matrix creation, arithmetic, inversion, and solving linear equations. This product has been released as shareware. Although you may freely use it for academic purposes, commercial users must register with the author for $25. The Small Matrix Toolbox for C version 0.41 (released 09/23/93)
404_01.zip Alain Coëtmeur of the Informatique-CDC (Arcueil, France) presents two new packages that bring traditional Unix tools into the 90's: Bison++ and Flex++. Coetmeur's Bison++ is derived directly from GNU Bison, the popular replacement for the Unix utility called YACC ("Yet Another Compiler Compiler"). Since its introduction two decades ago, the YACC software interface remains the most popular for developing compilers, assemblers, and other text processing applications. Any language that can be handled by a LALR(1) parser is a good candidate for YACC use. 1/3
404_02.zip Bison++: YACC for C++ 2/3
404_03.zip Bison++: YACC for C++ 3/3
405_01.zip Coëtmeur's other contribution to the CUG Library is the Flex++ package. Like Bison++, Flex++ retains downward compatability with existing C programs while offering the benefits of C++ classes. Coetmeur's Flex++ is derived directly from GNU Flex ("Fast LEX"), the popular replacement for the Unix utility called LEX. Since its introduction two decades ago, the LEX software interface remains very popular for developing front-end lexical analyzers for YACC and standalone text processing applications. A LEX solution is ideal for matching both simple and complex patterns of characters. 1/3
405_02.zip Flex++: Lexical Analyser for C++ 2/3
405_03.zip Flex++: Lexical Analyser for C++ 3/3
406_01.zip Mike Rejsa (Brooklyn Park, MN) submits his translator for converting ANSI-style C code and declarations to older Kernighan and Ritchie (K&R) syntax. Most C programmers have switched over to ANSI style coding techniques sometime in the last two or three years. The ANSI syntax allows for for more comfortably readable code and brings you closer to what you really wanted to write. For example, declaring parameters in the prototype and use of const, signed, and volatile storage class modifiers. However, in the course of maintaining older Unix systems, you may sooner or later have to handle the inelegant business of removing ANSI C specific constructs accurately from a newer source. ATOC version 1.08 (released 11/15/93) has been designated CUG 406A.
407_01.zip PSUtils, by Angus Duggan (Edinburgh, Scotland), is an assortment of utilities for manipulating PostScript documents. Page selection and rearrangement are supported, including arrangement into signatures for booklet printing, and page merging for n-up printing. The complete collection of PSUtils Release 1-PL11 (June 1993) is now available as CUG library volume #407.
408_01.zip Daniel Fandrich (Clearbrook, B.C., Canada) offers his SNews threaded Usenet newsreader add-on for PCs running a shareware package that provides dial-up e-mail access to public networks such as the UUCP network and/or the Internet. SNews can built using Borland Turbo C for either MS-DOS or OS/2. The CUG Library distribution includes MS-DOS executable and full source on a single diskette. SNews version 1.91 (released 08/25/93) is immediately available as CUG volume #408. 1/2
408_02.zip SNEWS: threaded Usenet newsreader for PCs 2/2
409_01.zip Kendall Bennett of SciTech Software (Melbourne, Australia) submits his SuperVGA VESA VBE test kit and Universal VESA VBE. The SuperVGA VBE VESA test kit thoroughly tests and demonstrates the VBE BIOS calls. The Universal VESA VBE is a drop-in replacement for an existing VBE driver you might or might not already have. As you may recall, the Video Electronics Standards Association (VESA) has established criteria allowing interoperability of SuperVGA hardware and software. The VESA BIOS Extensions (VBE) provide the ability to address video modes beyond regular VGA (640x480x16) in a hardware-independent fashion. Although the test kit includes full source code, the shareware VBE replacement driver offers source code for an additional licensing fee from SciTech Software. Both are immediately available on a single diskette as CUG volume #409.
410_01.zip Gary A. Allen, Jr., (Prentice Center, Queensland, Australia) submits his PART utility for examining the partition table and hard disk parameters under MS-DOS. PART works with all MS-DOS compatible hard disks and provides additional low-level information on Integrated Drive Electronics (IDE) disk controllers. Allen notes that although there are powerful partition editors available, all of them run the risk of accidently changing these critical disk parameters. Since PART is a read-only display, the partition tables remain secure at all times. PART includes full source in C and claims compatability with the Borland C/C++ compiler. PART version 1.5, as released on 10/27/93, now appears on CUG #410.
411_01.zip Bram Moolenaar (Venlo, Netherlands) contributes his Vi Improved editor (Vim) that supports MS-DOS, Amiga, and most forms of Unix. Vim claims near 100% of the functionality of the classic "vi" Unix editor. Vim also includes many embellishments on the original ideas and thus adds unique functionality of its own. The CUG Library edition includes full source in C as well as pre-built executables for MS-DOS. Vim version 2.0, as released 12/14/93, is now available as CUG #411. 1/2
411_02.zip Vi Improved (VIM) Editor 2/2
412_01.zip Peter M. Bouthoorn (Groningen University, Netherlands) submits his C++ search class library with artificial intelligence capabilities. AISEARCH is a tool for developing problem solving software. Basically, the library offers the programmer a set of search algorithms that solve all kind of different problems. When developing problem solving software, the programmer should concentrate on the representation of the problem to be solved and should not the implementation of the search algorithm used. This AISEARCH implementation of a set of search classes may be incorporated in other software through C++ derivation and inheritance. AISEARCH can be built in MS-DOS with Borland C++ or MS C++ and on Unix using GNU C++. AISEARCH, as released on 02/10/94, is immediately available as CUG #412.
413_01.zip CUG proudly announces two freeware programming kits for the Sound Blaster digital audio cards on a single diskette volume. The original Sound Blaster card by Creative Labs, Inc. has become the industry standard for PC digital audio. Today, a plethora of Sound Blaster (SB) compatible cards are available from many vendors. Although SB cards have proliferated widely, the knowledge required to program and control their operation has not. The I/O and DMA access protocol is critical for developers creating MS-DOS based applications with SB audio.
414_01.zip Mark Hessling (Holland Park, Queensland, Australia) offers his own full screen text editor similar to IBM VM/CMS Xedit and Mansfield Software's KEDIT. The THE text editor uses both command line commands and key bindings to operate. It has currently been ported to SUNOS 4.1.x, Xenix-386, MS-DOS (Borland C++ and MSC), Esix 4.0.3a, ATT SystemV 3.2, Linux, 386BSD, and OS/2 2.1 (MSC, C Set/2, Borland C++). The CUG distribution of THE includes full source in C and a prebuilt executable for use with MS-DOS. THE version 1.5, as released on 01/12/93, is now available as CUG #414. 1/3
414_02.zip THE: Highly Portable Text Editor 2/3
414_03.zip THE: Highly Portable Text Editor 3/3
415_01.zip Arindam Banerji (Dept. of Computer Sci. & Eng, University of Notre Dame) contributes his Run Time Type Information library for C++. Run Time Type Information (RTTI) is a C++ language extension proposed by the ANSI C++ committee. Although the extension is intended to implemented as part of native C++ compilers, it may be a long time before this comes to fruition. Fortunately, Banerji's implementation of RTTI as a C++ library means that you can start taking advantage of it right away. His system is loosely based on the RTTI system demonstrated by Stousroup in "The C++ Programming Language". RTTI for C++ works *ONLY* with Unix based C++ implementations due to file naming conventions that are *INCOMPATIBLE* with MS-DOS. RTTI for C++, as released on 11/03/93, is now available is CUG #414. 1/2
415_02.zip Run Time Type Information Library for C++ 2/2
416_01.zip Nigel Salt (Crayford, Kent, U.K.) contributes a variety of standalone tools and libraries with source code in C for MS-DOS. This is the first time source code for many of these tools has been released. Some of the programs are written specifically for Borland Turbo C while others are intended for use with Microsoft C (MSC). All programs are shareware with reasonable registration fees ($15 or less) or donationware (whatever you feel is appropriate).
417_01.zip Oleg Orel (Institute for High Energy Physics, Protvino, Russia) presents his LIBFTP TCP/IP library. LIBFTP provides an easy callable interface for Unix programs to talk with FTP servers as defined in RFC 959. The FTP (or File Transfer Protocol) is the protocol of choice for transferring files over the Internet. As such, you could use this library to write your own FTP client with a graphical user-interface or perhaps as the basis of a file-mirroring utility. LIBFTP works with most popular Unix systems but cannot work with MS-DOS. LIBFTP (as released on 10/28/93) is immediately available as CUG #417. 1/2
417_02.zip LIBFTP: easy interface to servers 2/2
418_01.zip Roger Sayle (Dept. Computer Science, University of Edinburgh, U.K.) contributes his molecular graphics visualization system for Unix XWindows and MS Windows. Specifically, RasMol is intended for the visualisation of proteins and nucleic acids. It reads Brookhaven Protein Databank (PDB) files and interactively renders them in a variety of formats on either an 8-bit (see Fig. 2) or 24- to 32-bit colour display. Documentation includes include on-line help, hypertext documentation and the previous (dated) version of the PostScript user reference manual. RasMol version 2.3 (as released on 03/04/94) is immediately available on a 4 disk set as CUG #418. 1/5
419_01.zip Dale Anderson (San Diego, CA) submits his a first release of the collections specified by Object Database Management Group - 93 (ODMG-93). This work is based on the publication "The Object Database Standard: ODMG-93" (ISBN 1-55860-302-6). Although Anderson has no personal affiliation with the ODMG, this work nevertheless represents an important contribution to the dissemination of this conceptual model. His release contains collection classes (see chapter 5), man pages for each method, and a test suite for almost all methods. The code itself has been tested on an HP/UX 9.0 C++ compiler and GNU C++ also on this platform. Anderson's ODMG-93 implementation for Unix (as released on 03/02/94) is immediately available as CUG volume #419.
420_01.zip James L. Dean (New Orleans, LA) contributes his VGAMAZE tools written for MS-DOS VGA graphics with the Borland C++ 3.0 compiler. VGAMAZE displays mazes with square (SQRMAZE.CPP) or hexagonal rooms (HEXMAZE.CPP) in three dimensions on your monitor. It includes a template for one dimensional virtual arrays. The plotting class can plot any surface z=f(x,y). An example program for surfaces (SPIKE.CPP) demonstrates that its good for more than just mazes. The CUG Library distribution includes all C++ source code and executables for SQRMAZE, HEXMAZE, and SPIKE. VGAMAZE version 4 (as released on 02/27/94) is immediately available as CUG Library volume #420A.
420_02.zip Tatsurou Sekiguchi (Department of Information Science, University of Tokyo, Japan) submits his Coerce program which can convert many graphic file formats popular on BBSes in Japan. Specifically, it converts from one of MAG, PI, PIC, MAKI, PPM, PBM, ML1, and beta formats to one of MAG, PI, PIC, PPM, and beta formats. Coerce can be compiled on any Sun workstation running SunOs 4.1.3 with GNU C++ 2.4.5 or later. Others have reported good success compiling Coerce on MIPS and RS/6000 machines. Sekiguchi also includes source for a simple X Windows bitmap viewer. Coerce (as released on 02/24/94) is immediately as CUG Library volume #420B.
421_01.zip Thomas Hagen (Trondheim, Norway) contributes his RFVDEMO collection of high-speed VGA animation demonstrations for MS-DOS. The animations require the Borland C++ 3.1 compiler. There are four main animation demonstrations included: bitmap-rotation routine, fractal zoomer, plasma, and voxelspace routine. These are in addition to lower-level support routines for keyboard handling, timer class, and others. RFVDEMO version 0.1 (as released on 01/17/94) is immediately available in a three disk set as CUG volume #421. 1/3
421_02.zip RFVVGA Graphics Animation Demo 2/3
421_03.zip RFVVGA Graphics Animation Demo 3/3
422_01.zip Dave Dunfield (Nepean, Ontario, Canada) submits an entire suite of tools from the MICRO-C C compiler development system. This includes the MICRO-C C compiler itself for MS-DOS, more than 70 useful sample programs with full C source, and a demonstration version of MICRO-C for embedded systems. MICRO-C is a tiny compiler which can run with less than 32k RAM and yet is highly independent of CPU and OS. Specifically, platform support is available separately for 68HC08, 6809, 68HC11, 68HC16, 8051/52, 8080/8085, 80x86 and 8096 CPUs. The CUG Library distribution includes a fully functional MICRO-C compiler executable built for the MS-DOS 80x86 environment. This version generates code in .ASM format so Microsoft MASM, Borland TASM, or equivalent are required (not included). MICRO-C version 3.02 (as released on 03/22/94) is immediately available as CUG #422 in a set of four diskettes. 1/4
422_02.zip Micro-C C Compiler 2/4
422_03.zip Micro-C C Compiler 3/4
422_04.zip Micro-C C Compiler 4/4
423_01.zip The CUG Library has always accommodated C/C++ archives both big and small. This month, I've compiled an anthology of five outstanding but small source archives. William Pierpoint (Camarillo, CA) submits his comprehensive library for stream-style record I/O. Karl Hahn (Sarasota, FL) contributes a MIME binary encode/decode routines for use with email tools. Philip Erdelsky (San Diego, CA) releases both source for general ledger posting with 32-bit math library and a Re-entrant DOS-Compatible File System for embedded systems. Last, Keith Vertanen (Pine Springs, MN) sends his brief but succinct implementation of the BSPLINE rendering algorithm. Again, all five archives are immediately available on a single diskette as CUG volume #423.
424_01.zip Charles Sandmann (Houston, TX) submits the ED editor with a user interface based on the DEC VMS EDT editor. ED is a true multiplatform editor and can be compiled and run on virtually any platform. It includes target-specific code for keyboard, screen, and TCP/IP handling. This allows it to run on Unix (IBM RS/6000, Sun Sparc, HP, NeXT or Alpha AXP machines), MS-DOS, Windows NT, and OS/2 environments with ease. ED can edit any kind of file in text, binary, or hexadecimal modes. 1/2
424_02.zip Ed Editor: Highly portable windowing editor 2/2
425_01.zip Timor V. Shaporev (Moscow, Russia) contributes an extremely versatile version of the classic Unix TAR archiver and an innovative method of delivering LZW compressed data over pipes. Portable TAR works with both MS-DOS and Unix compatible machines. Since more than half the source code available from the Internet appears in TAR format, you'll quickly find this a valuable utility. Portable TAR reads and writes archives in ordinary files, raw floppies, and QIC-02 streamer tapes. It understands regular TAR formats, PKZIP, gzip, and Unix "compress".
426_01.zip Patrick Ko Shu Pui (Hong Kong) submits his LPC-Parcor-Cepstrum code generator for C. The LPC-Parcor-Cepstrum code generator (hereafter, LPC) can be built on most Unix platforms as well as Microsoft C/C++ 7.0 and Borland Turbo C v2.0. The primary use of this archive is the manipulation and normalization of audio data files. Specifically, it supports 8-bit ulaw (SUN Sparc), 8-bit and 16-bit PCM data. It then generates LPC autocorrelation or covariance coefficients, Parcor (partial correlation) coeefficients, or LPC cepstrum coefficients.
427_01.zip Christof Ruch (Clausthal, Germany) submits the Multi Joystick Interface package. This package makes it possible to connect up to six digital joysticks (Atari type) to the parallel port of your PC. For test (or two player gaming) purposes, two joysticks can be emulated by the keyboard, so you can try out the games before you actually decide to build an interface. Specifically, this archive includes instructions for building the interface, test programs for checking your interface, and Pascal and C interface routines. Several arcade type games have are already publicly available for this system, though none are included with the CUG archive.
428_01.zip Jonathan Wood (Irvine, CA) contributes the PICTOR text-mode video library. PICTOR is a C callable library for MS-DOS development that provides multi-pane stacked windows, pulldown menus, and hypertext help. PICTOR is more than just video: it also includes interrupt-driven serial communications, CTRL-C and critical error handler, on-screen clock, text compression, and even a sample text editor. 1/2
428_02.zip Pictor Text-Mode Video Library for C/MS-DOS 2/2
429_01.zip This volume combines three relatively small but powerful archives on a single diskette. Walter Karas (Cary, NC) submits C++ source code for a simple MS-DOS chess game. Astute CUJ readers will remember that Walter Karas also contributed the SORTLIST AVL algorithms last year on CUG #395. Russell Taylor (University of North Carlina at Chapel Hill) contributes archives for redirecting serial I/O and accelerating the PC hardware clock.
430_01.zip Christopher G. Phillips (University of Texas at Austin) submits his "m68kdis" disassembler for the Motorola 68000 family of CPU chips. Disassemblers are system software that accepts a binary executable as input and produces assembly language source as output. Specifically, m68kdis supports the full instruction sets of the 68000, 68008, 68010, 68020, and 68030 CPU chips. Additionally, m68kdis decodes instructions for the 68851 Paged Memory Unit and the 68881/68882 Floating-Point Coprocessors. The Motorola 68000 family chips power millions of computers including the Macintosh, Atari, Amiga, and many embedded CPU industrial applications. The CUG Library edition of m68kdis includes full source in C (no executables are provided). The m68kdis disassembler is immediately available as CUG volume #441.
431_01.zip Kyle A. York (McGraw Hill School Systems) submits his Remote Installable File System for DOS. The Remote Installable File System provides a LAN linking two computers through the serial port so they may share resources. RIFS installs itself as a TSR using the MSCDEX convention for installable file systems. Shareable resources are currently limited to available disk drives including hard disks, CD-ROM, and network drives. RIFS also supports the redirection of a client parallel port to a file or device on the server. RIFS supplies 32-bit Cyclic Redundancy Check (CRC) to guarantee error-free file transfers. The CUG Library distribution includes full source in C and ASM as well as MS-DOS executables. RIFS for DOS (released 10/08/94) is immediately available as CUG volume #431.
432_01.zip Andrew Scott (Mosman Park, Australia) submits his PTMID music conversion utility. Specifically, PTMID takes General MIDI files (format 0 or 1) and converts them to Protracker MOD files or Multitracker MTM files. As you may know, MIDI files are industry standard, but need some sort of sequencer to be played. This is because there can be near-infinite simultaneous notes present (though about 20 is a standard maximum). Protracker files are 4 channel (though 6, 8, or more can be supported) files, but have a bank of digitized instruments included. This allows reasonable quality sound to be produced given limited hardware. Multitracker files are similar to MOD files and support up to 32 simultaneous notes. PTMID version 0.3 (released on 07/18/94) is immediately available on CUG Library volume #432A.
433_01.zip Stephen L. Balkum and Daniel A. Sill (Zephyr Software, Austin, TX) submit their MS-DOS real-mode SVGA graphics library for MSC, Borland C, and Symantec C/C++. SVGACC provides an easy interface to the high resolution/high color video modes of the newer SVGA video cards. There has been no standard for VGA video cards above the 320x200x256 resolution. Instead, each video card manufacturer has implemented a slightly different method to access these high resolution/high color video modes. SVGACC automatically identifies the video card and its installed memory. Users may write graphics programs that will work on most any SVGA card without writing specific versions for each individual SVGA card. Over 100 functions support sprite animation, drawing primitives, fills, 3-D views and much more. SVGACC is written in 100% assembly language and uses 80386 32-bit registers for the best possible speed. SVGACC version 2.1 (as released on 05/09/94) is immediately available as CUG volume #433.
434_01.zip Nicholas Centanni (Los Gatos, CA) submits his 3-D graphics class library for Borland C++ 3.1 (and later). XYZ++ is a comprehensive package of optimized C++ classes for both floating point and fixed point 3D graphics. 1/2
434_02.zip XYZ++: 3-D C++ Graphics Lib 2/2
435_01.zip Jason Hughes (Abilene, TX) submits his VESA SVGA graphics demonstration that includes many other programming elements essential to writing MS-DOS games. The graphics demonstrations take you through many fast-moving animations that show off the VESA 640x480x256 color display mode. I was particularly impressed with its speed even on my slow 80386DX-20Mhz CPU. Additional graphics routines show off the virtual paging capabilities of SVGAs with more than 1MB RAM onboard. The CUG Library distribution of VesaTest includes full source code in Borland C++ v3.1 along with MS-DOS executables. VesaTest version 2 (as released on 07/20/94) is immediately available as CUG #438.
436_01.zip Richard Zigler (McBain, MI) submits his INput CONtrol (INCON) library for developing sophisticated data input screens in MS-DOS applications. INCON gives you control over the placement and appearance of input fields, and the type and amount of data that each will accept. Input fields may be alphanumeric, uppercase, integer, or floating-point. The INCON library support Borland Turbo C 2.01 (or later) and will build Compact, Small, Medium, or Large memory model versions. INCON version 3.1 (as released on 10/08/94) is immediately available as CUG #436
437_01.zip C/C++ Exploration Tools for Windows, by Juergen Mueller (Kornwestheim, Germany), includes both his C Function Tree Generator (CFT) and the C Structure Tree Generator (CST). CFT and CST analyse the C/C++ source code of applications of any size with multiple files. CFT and CST are useful to explore new, unknown software and to support re-use, maintenance and re-engineering. By preprocessing, scanning, and analysing the program source code, these programs generate the function call hierarchy (CFT) and the data structure/class (CST) relations. Both programs can handle C and C++ code, CFT can additionally analyse assembler code. The C Exploration Tools for Windows executables (released 09/11/94) are immediately available as CUG volume #437. 1/2
437_02.zip C/C++ Exploration Tools for Windows 2/2
438_01.zip Riku Saikkonen (Finland) submits his telnet client for MS-DOS which uses the serial port as the I/O device. Although designed for Bulletin Board System (BBS) applications, STELNET works equally well without any BBS software. STELNET requires a FOSSIL driver and the Waterloo TCP library. It supports binary mode telnet (8-bit), and a '8-bit clean mode', in which all 256 characters are cleanly transferred in both directions. STELNET does not do any terminal emulation of its own; it should never change the data transferred (except where protocol requirements designate).
439_01.zip David Pyles (Jackson, MS) offers his DOS Extender Library for producing Protected Mode MS-DOS applications. XLIB is an assembly language library which greatly simplifies protected-mode programming under Microsoft DOS. With only two calls to XLIB, assembly language programs can utilize the simplicity and power of 32-bit processing. C and C++ programs can harness the powers of 16-bit protected mode using inline assembly. Additionally, the XLIB archive contains a second library call EASYX which allows all high-level languages to gain access to extended memory.
440_01.zip George Vanous (Delta, BC) submits his library of essential and efficient C-callable functions. Although oriented towards MS-DOS, many of the algorithms are relevant on other platforms such as Windows and Unix. BESTLibrary consists of 282 functions coded in assembler and 68 functions written in C. All calls require far pointers (e.g. Large memory model).
441_01.zip George Vanous' also submits his VGA Editor for editing and animating graphics images with full mouse support. The VGA Editor creates graphics files that are fully portable into C and Pascal programs in conjunction with BESTLibrary (CUG #440). The editor is ideal for drawing small pictures and animations for use with 16-color VGA modes. VGA Editor will also read in Windows .ICO files for editing (but does not yet support writing them). The editor can accomodate multiple-frame animations in a single editing session. Fig. 1 shows the zoom style of editing on a single frame.
442_01.zip Ted Jensen (Redwood City, CA) has contributed his manuscript "A Tutorial on Pointers and Arrays in C" to help novice C programmers learn proper usage of these critical language elements. Looking back to my own apprenticeship in C more than 10 years ago, I still have vivid memories of my trials with pointers. Jensen's work is based on a tutorial originally found in Bob Stout's popular "SNIPPETS" C code collection.
443_01.tz Martin Steppler (Aachen University of Technology, Germany) submits the Communication Networks Class Library (CNCL), a C++ library created by the Communication Networks department of Aachen. CNCL is both a class library featuring generic C++ classes as well as a simulation library with strong points in random number generation, statistics, and event-driven simulation.
443_02.tz Martin Steppler (Aachen University of Technology, Germany) submits the Communication Networks Class Library (CNCL), a C++ library created by the Communication Networks department of Aachen. CNCL is both a class library featuring generic C++ classes as well as a simulation library with strong points in random number generation, statistics, and event-driven simulation.
444_01.zip Mendel Cooper (Grantsville, MD) contributes a volume of MS-DOS games: Wordy, ChessClock, and Chaos Game. Wordy is an educational word-game study system that builds pattern and word recognition skills used in Scrabble (tm) and Boggle (tm). The Wordy practice game checks words you unscramble against a 100,000 word dictionary. Wordy also includes standalone Search, Anagram, UnScramble, and word-pattern find utilities. A BINGO utility looks up all valid permutations of letters of a word. The 1DIF utility finds all legal words constructed by substituting a single letter.
445_01.zip Mendel's second volume includes an eclectic mixture of ten different text and graphics utility and algorithm demonstrations.
446_01.zip The Are Magnus Bruasat of the SINTEF group at the University of Oslo (Norway) submits Diffpack: a fully object-oriented framework in C++ for solution of Partial Differential Equations (PDEs). PDEs often arise in the mathematical modeling of physical processes involving for example fluid mechanics or waves. Some typical uses of Diffpack include standard model PDEs, 3D linear wave equation, incompressible Navier-Stokes, and stochastic ODEs. Diffpack can interface with gnuPlot and plotmtv. You can even construct MPEG movies from multiple visualization frames.
447_01.zip Michael F. Watson and Dean Lance Smith contribute RELAY: an interactive overload protection design tool for electrical engineers. Relay plots the time-current characteristics of overcurrent protection devices and coordinates the overcurrent protection devices at an electric distribution substation. The source code is entirely in C and includes makefiles for the Microsoft C compiler.. The RELAY.EXE executable requires MS-DOS and VGA display.
448_01.zip Surojit Chatterjee and Dean Lance Smith submit a tool for detecting digital circuit problems via signature analysis. Signature analysis is a technique used in servicing microprocessor-based systems. With this technique, an instrument called a signature analyzer is used to check a digital circuit by detecting the bit streams at various nodes of the circuit. The bit streams are displayed as hexadecimal signatures. The actual signature of a node is compared with its predetermined correct signature. The result of the comparison is used to trace faults in the system down to the component level. This distribution includes complete source in C and MS-DOS executables. The source supports Borland Turbo C but could possibly be ported to other environments. Signature analysis v1.0 is now available on CUG CD-ROM as volume #448
449_01.zip Nullsock, by Jean-Michel Mercier (Paris, France), is a Winsock simulator which allows you to run Winsock applications offline. This is most useful for forcing a web browser to work on offline copies of HTML files that you have downloaded. You might want to do this because you're "on the road" with a portable computer but without a immediate Internet connection or perhaps to avoid paying online charges to view material you've already downloaded several times. Nullsock works by loading a dummy WINSOCK.DLL with its entry points replaced by stubs. You can either run Nullsock directly or use Nullsock to spawn the desired application. Nullsock was designed to work with Windows 3.11 and has been tested with Netscape and AIR Mosaic. It will work with Windows 95, but only when running 16-bit Winsock applications. Nullsock includes complete C source and compiles with Borland C. Nullsock version 1.0 is available on CUG CD-ROM as volume #449.
450_01.zip Klamer Schutte of the TNO Physics and Electronics Laboratory (The Hague, Netherlands) contributes the CpppIma image processing class library. CppIma library provides an interface to common operations on images for C++ applications. The operations include file I/O, image creation, iterators for traversing images, and histogram creation. The library's is enabling easy construction of image processing programs. Secondarily, Schutte hopes to achieve reasonable performance and create an image library independent API.
451_01.zip Schutte has also contributed ClipPoly, an extended C++ polygon clipping library with set operators. Classical clipping algorithms will tell you whether a point "x" is withing a given polygon "A". ClipPoly handles the more general case of two polygons "A" and "B" where you want to know the areas of intersection of "A" and "B", "A" minus B", and "B" minus "A". Although the Weiler-Atherton algorithm already solves this case, Schutte presents a simpler but just as effective algorithm. The ClipPoly algorithm requires only that all polygons are non-self-intersecting (i.e. there are no "holes").
452_01.zip Sean Gordon (Fife, Scotland) submits Freedock, a Windows "dock" program that includes the full source code in C. A dock is kind of a miniature version of Program Manager that holds icons for the small number of applications that you use most often. Freedock also remembers your preferred window geometry for each application that you register with it. This saves you from the burden of re-arranging your windows each time you startup an application. A "previewer" allows you to check or change the window geometry without actually launching the applications. The entire dock can be scaled in a way similar to the MS Office Manager dock.
453_01.zip Jean-Claude Wippler (Houten, Netherlands) contributes his MetaKit, a compact class library for data storage and easy manipulation of structured objects and collections in C++. MetaKit works with any C++ compiler that supports Microsoft Foundation Classes including VC++, Borland C++, and Symantec C++. MetaKit allows your data to be loaded on demand, which allows you access to any size files. It uses traditional database metaphors of begin work/commit work/ rollback work with automatic file storage allocation and reclamation. MetaKit allows data to be "flattened" for efficient streaming over sockets and pipes. It encapsulates data in terms of view, row, and property classes. Data can be conveniently accessed via "[]" and "()" by operator overloading. Applications can statically link MetaKit or load it as a DLL.
454_01.zip Beat Rigazzi (Oberonz, Switzerland) submits the Sound Wizards Module Player (SWMP), a driver for playing .MOD sound files through any digital audio card (SoundBlaster compatible). The .MOD audio file format The .MOD file is a multichannel sampled audio file which supports 4, 6, or 8 simultaneous channels. The .MOD file has fewer limitations than the .WAV file and for that reason has become widely used by electronic music and game producers. SWMP includes several example .MOD tracks for you to experiment with and a standalone MS-DOS player program (SWMP.EXE). SWMP provides an API and calling interfaces for Borland C/C++, Assembler, and Pascal. You can integrate the library simply by including the header file and linking in MOD_DRV.OBJ (source not provided).
455_01.zip Oleg Kiselyov (Denton, TX) offers his Advanced I/O C++ Class Library which enhances the capabilities of stream I/O with encoding and compression. Some of these features include: * Filenames with pipes embedded * Explicit Endian I/O of short/long integers (guarantees portability) * Stream sharing of different I/O types * Simple variable-length coding of short integers * Arithmetic compression of a stream of integers
456_01.zip Kerwin F. Medina (New Westminster, BC) contributes LZHLIB, a small C library with the minimum code neccessary to compress and uncompress using the LZH algorithm. This library is a direct derivative of the source cod of Haruhiko Okumura's popular "ar" archiver. Medina has created the library so an application can make use of compression with a function call and without having to spawn an external compression program. The library has only two API functions: "lzh_freeze" (to compress) and "lzh_melt" (to decompress). In both cases, the caller only has to provide the I/O functions and memory allocation functions. The interface is simple enough that you can integrate it with fewer than 20 additional lines of code in your program. LZHLIB can be built on MS-DOS, Unix, and other platforms. LZHLIB as released on 04/18/96 is now available on the CUG CD-ROM.
457_01.zip Gray Watson (Pittsburgh, PA) submits dmalloc, the debug memory allocation library. The dmalloc library has been designed as a drop-in replacement for C runtime malloc(), realloc(), calloc(), free() and other memory management routines. It provides many debugging facilities that you can configure at runtime, including: memory-leak tracking, fence-post write detection, file/line number reporting, and general logging of statistics.
458_01.zip Kiselyov Oleg (Denton, TX) contributes Grayimage, a C++ class library for dealing with full-depth grayscale images. Grayimage upports all standard image algebra/arithmetics including dealing with image slices, histogram equalization, and computing various norms and scalar products. The package reads and writes PGM, XWD and Group G (grayscale) TIFF file formats with automatic recognition of the input image file format. It's possible to assign one image to another to fit, no matter what their dimensions are.
459_01.zip Alex Hunger (Adlington, Lancashire UK) submits MMND, a game that puts the computer in the role of "codebreaker" in the classic MasterMind (TM) boardgame. The interesting aspect of Hunger's implementation is that the computer can guess a pattern that you choose. It uses an optimal information-theoretic algorithm and so plays extraordinarily well -- better than any human being. This takes a lot of computation, so patterns chosen are stored in a data file so a computation never needs to be made twice. The patterns chosen are put through a randomizing algorithm that makes the game more interesting to play, without losing optimality.
460_01.zip M.A. Sridhar of faculty of the University of South Carolina (Columbia, SC) contributes "Yet Another Class Library (YACL), an innovative cross-platform application framework. YACL is a C++ class library that offers high-level abstractions for common programming problems. Its design goal is to be both application-centric and take advantage of C++ facilities (e.g. operator overloading and templates) wherever possible. YACL implements both scalar (String, Integer, Date, etc.) and container (sequence, set, tree, etc.) core classes. The GUI classes are based on a variation of the model view controller (MVC) paradigm. YACL supports all expected GUI objects (menus, dialogs, buttons, listboxes, button groups, etc) and resources (cursors, fonts, pens, colors and brushes).
461_01.zip Dean Lance Smith and Mohammad Musa present their paper "Two Software Data Organizations that Support Railroad Signalling" and accompanying C source. This program models a control system capable of understanding an entire railroad line composed of any combination of Automatic Blocking System (ABS) and Centralized Traffic Control (CTC) blocks. In railroad parlance, a "signal block" or "block", is a length of rail track that is controlled by a block signal. A block may contain two or more tracks in various track configurations. Most blocks have at least one main track. Two or more main tracks may also be in parallel in a block. A block may also contain lines that cross the main track(s), turnouts, branch lines, or sidings. Two or more blocks constitute a rail line.
462_01.zip Ed Ream (Madison, WI) submits the Sherlock 2.0 set of debugging tools for Macintosh as CUG volume 462. Longtime CUJ readers may recall earlier incarnations as Sherlock 1.7 for MS-DOS (CUG 355) and Macintosh (CUG 356). Sherlock is a debugging tool different from currently popular interactive debugging tools such as CodeView. Sherlock uses C macro expansion capabilities to implant debugging calls and functions without manual coding. Those calls are enabled/disabled from the command line and removing those calls from the source is also done automatically. Sherlock uses far less memory than a full-size debugger. In addition, Sherlock provides detailed statistics about your program.
463_01.zip Leonard Janke (University of British Columbia, Vancouver) contributes LInteger, a C++ library that empowers you to create and perform arithmetic on objects representing nearly arbitrary precision integers. Thanks to C++ support for operator overloading, the use of the large integers in this library should be nearly as easy as the use of regular int types. In many cases, converting your application to use LInteger can be as simple as substituting "LInteger" for "int" in your editor.
464_01.zip B.T. Szocik (Ottawa, Ontario) submits the Miracle C compiler, a complete language and runtime implementation for MS-DOS. Szocik intends Miracle C to be used primarily as a teaching support tool. Miracle C supports only the Small memory model (code < 64K, data < 64K). Pointers are always 16-bit; no "far" extensions are allowed. All K&R C syntax and data types are fully supported (plus some ANSI extensions), there's nothing small about the language implementation.
465_01.zip Victor R. Volkman (Ann Arbor, MI) contributes his "Fader" custom control for Windows, a slider control for use with Windows 3.1 and compatible environments. The Fader is a custom control designed to return a continuous range of values based on the position of a thumb that slides along a rail. This idea is similar to the Windows scrollbar in many respects. Since the scrollbar is almost inseparably associated with scrolling the client area, it quickly becomes unfamiliar in other contexts. The fader provides an analog range in the same way the potentiometers are used in a stereo equalizer or mixer. For example, a fader could be used to apply equalization to a waveform or to regulate the hue of a color.
466_01.zip Eric Artzt of Microsoft Corporation (Bellevue, WA) releases Autoduck, a Windows 95/Windows NT console utility that extracts specially tagged comment blocks from C/C++, Visual Basic, and Assembly source files. Autoduck formats the information in the comment blocks and produces documentation files in Rich Text Format (RTF) for use with Microsoft Word or the Windows Help Compiler. Autoduck can also produce HTML files for Internet or intranet use.